package com.sz.biz.logistics.base.service;

import com.sz.biz.logistics.base.entity.AirplaneModel;
import com.sz.common.base.dto.QueryParams;
import com.sz.common.base.dto.ResultDto;
import com.sz.common.core.system.dto.FileInfoDto;

import java.util.List;

/**
 * Function: AirplaneModelService <br>
 * Author: Charles <br>
 * Date: 2016-12-02 10:13:00
 */
public interface AirplaneModelService {

    void refreshCache();

    /**
     * @param model       --机型实体
     * @param attachments --附件Id
     * @return new Id
     */
    Integer addAirplaneModel(AirplaneModel model, List<String> attachments);

    /**
     * @param model       --机型实体
     * @param attachments --附件Id
     */
    void updateAirPlanModel(AirplaneModel model, List<String> attachments);


    /**
     * @param ids --机型Id
     */
    void deleteByIds(List<Integer> ids);

    /**
     * @param id --机型Id
     * @return --机型实体
     */
    AirplaneModel getById(int id);

    /**
     * @param params --页面参数
     * @return --数据Dto
     */
    ResultDto getAirplaneModels(QueryParams params);

    /**
     * @param params --页面参数
     * @return --数据Dto
     */
    ResultDto getAirplaneModelsWithI18n(QueryParams params);

    /**
     * @param fileGroupId --model Id
     * @return
     */
    List<FileInfoDto> getAttachments(String fileGroupId);

    /**
     * @param iataCode
     * @return
     */
    boolean isIATAExist(String iataCode);

    /**
     * @param iataCode --IATA code
     * @param exceptId --排除此Id
     * @return --是否存在
     */
    boolean isIATAExist(String iataCode, int exceptId);

    ResultDto getShortAirplaneModels(QueryParams queryParams);
}
